A network service which accepts, stores, and distributes presence information for a plurality of users may be referred to as a presence service. A presence service may be implemented on one or more servers, for example arranged in some architecture or topology in the network. A presence server in a network may be configured to receive and manage presence information from a user or client device, also referred to as a user equipment (UE) in some scenarios. Examples of a UE include smartphones, laptop computers, computer tablets, and desktop computers. A presence server may share the presence information of a user (on a UE) with other users (on one or more other UEs) that are authorized by the user to obtain such information either directly by sending the presence information to these other users or indirectly by sending the presence information to other presence servers which in turn distribute the presence information to other users. The presence information indicates the status of the user on the network, such as the availability, ability, or willingness of the user to communicate with other users of the network. Presence information has wide application in many communication services, such as instant messaging, voice over Internet Protocol (IP), and social networking services or applications.
To communicate presence information, a UE may display an indicator icon, for example corresponding to an instant messaging application, from a choice of graphic symbols with easy-to-convey meanings and a list of corresponding text descriptions of each of the states. Common states that indicate the user's availability are “free for chat”, “busy”, “away”, “do not disturb”, and “out to lunch”. Such states exist in many variations across different instant messaging applications. Some applications also support a rich choice of additional presence attributes that can be used for presence information, such as user mood, location, or free text status.
In some presence distribution architectures, clients send presence updates to one of a pool of servers, which then distributes updates to all of the user's subscribed contacts. For example, both Session Initiation Protocol (SIP) for Instant Messaging and Presence Leveraging Extensions (SIMPLE) and Extensible Messaging and Presence Protocol (XMPP) presence standards discuss presence updates in terms of a subscribe/notify model, where the contact subscribes for presence updates from an originating user. The implementation is one where presence updates are sent from an originating user's device to one of a cluster of presence servers, which then distributes the presence updates to the user's contacts (typically through other servers). In such presence distribution architectures, the number of sent updates increases, e.g., proportionally, as the numbers of users, servers, and initiated updates increase, which can be substantial in larger networks (e.g., with hundred thousands of users) and incur substantial cost (e.g., in terms of used servers and resources). Reducing the number of used servers and/or sent presence information messages is desirable to reduce cost and improve efficiency (e.g., in terms of resource and network utilization).